#include <dlib/image_processing/frontal_face_detector.h>
#include <dlib/image_io.h>
#include <dlib/opencv.h>
#include <dlib/gui_widgets.h> // 添加显示窗口支持
// 该程序实现了对指定图片中的人脸检测功能。它使用 Dlib 的人脸检测器 frontal_face_detector 来检
// 测图片中的人脸，并将检测结果以矩形框的形式显示在图像窗口上。
// 3. 复制 CMakeLists.txt 并修改工程名称
// 将 examples/CMakeLists.txt 复制到 myapp 目录，并重命名为 CMakeLists.txt 。在终端中执行命
// 令：
// 然后，使用 VSCode 打开 myapp/CMakeLists.txt 文件，修改工程名称为 myapp ，并添加对
// basic_capture 和 basic_face_detect 的编译目标。修改后的 CMakeLists.txt 内容示例：
using namespace std;
int main(int argc, char** argv) {
// 检查命令行参数
if (argc != 2) {
cerr << "使用方法: " << argv[0] << " <图片路径>" << endl;
return 1;
}
try {
// 加载图片
dlib::array2d<dlib::rgb_pixel> img;
load_image(img, argv[1]);
// 初始化人脸检测器
dlib::frontal_face_detector detector =
dlib::get_frontal_face_detector();
// 检测人脸：调用人脸检测detector,返回人脸矩形框列表
std::vector<dlib::rectangle> faces = detector(img);
// 显示结果
cout << "检测到 " << faces.size() << " 张人脸" << endl;
// 可视化结果
dlib::image_window win;
win.set_image(img);
win.add_overlay(faces, dlib::rgb_pixel(255,0,0));
cout << "按回车键退出..." << endl;
cin.get();
} catch (exception& e) {
cout << "发生异常: " << e.what() << endl;
}
return 0;
}